/***************************************************************************
创建者：华磊
 开始时间：               : 2020.1１.２４
 copyright            : (C) 深圳市华友高科有限公司
 修改说明：（每次有修改就添加一条，带有 修改人，修改时间，修改描述）

 ***************************************************************************
 *   io窗口程序
*                                                                         *
 ***************************************************************************/
#ifndef POINTREGISTERSTATUS_H
#define POINTREGISTERSTATUS_H

#include <QWidget>
#include <QModelIndex>
#include <QStringListModel>
#include <QStandardItemModel>

#include"../CommunicateDelegate/hmicommunicate.h"

class SystemStatus;

namespace Ui {
class PointRegisterStatus;
}

/**
 * @brief The PointRegisterStatus class　pr界面类
 */
class PointRegisterStatus : public QWidget
{
    Q_OBJECT

public:
    /**
     * @brief pointList　坐标点列表
     */
    QVector<PointPro> pointList;
    /**
     * @brief pointType　坐标类型
     */
    int pointType;

    SystemStatus *systemStatus;

    QStandardItemModel  *model;

    bool initFlag;

    QStringListModel *model2 ;

    QVector <QString > sixAxisName;

public:
    explicit PointRegisterStatus(int styleId,QWidget *parent = 0);
    ~PointRegisterStatus();

    /**
     * @brief updateView　显示更新函数
     */
    void updateView();
    /**
     * @brief showPointRegisterStatusView　显示数据更新函数
     */
    void showPointRegisterStatusView();

    /**
     * @brief setCurrentRow             显示选择的当前点数据
     * @param t
     */
    void setCurrentRowToShow(int t);
    /**
     * @brief messageBoxShow            消息提示
     * @param title
     * @param text
     */
    //void messageBoxShow(QString title,QString text);

    void changeLanguage();
    void setTableView();
    void initialDisplayStyle(int styleId);

signals:
    /**
     * @brief jMove                         关节移动到点
     * @param index　点号
     */
    void jMove(int index);
    /**
     * @brief lMove                         直线移动到点
     * @param index　点号
     */
    void lMove(int index);
    /**
     * @brief recordPoint                   载入点
     * @param index　点号
     */
    void recordPoint(int index);
    /**
     * @brief changePointTypeToJoint        改变点到点类型
     * @param index　点号
     */
    void changePointTypeToJoint(int index);
    /**
     * @brief changePointTypeToCartesian    改变点到笛卡尔类型
     * @param index　点号
     */
    void changePointTypeToCartesian(int index);
    /**
     * @brief pointRegisterStatusFlagSigna  更新数据信号函数
     */
    void pointRegisterStatusFlagSignal();
    /**
     * @brief moveStop                      停止移动信号函数
     */
    void moveStop();


private slots:
    void on_pushButton_clicked();       //查询

    void on_pushButton_3_pressed();     //关节到点
    void on_pushButton_3_released();

    void on_pushButton_4_pressed();     //直线到点
    void on_pushButton_4_released();

    void on_pushButton_2_clicked();     //载入点

    void on_pushButton_5_clicked();     //转换关节点

    void on_pushButton_6_clicked();     //转换笛卡尔点

    void on_listView_clicked(const QModelIndex &index);

    void on_pushButton_F5_clicked();

private:
    Ui::PointRegisterStatus *ui;
};

#endif // POINTREGISTERSTATUS_H
